Modern networking continues to provide an improvement in communication and information access. As an example, in-house data centers, associated with a particular entity or interrelated group of users, could contain a large number of information technology (IT) resources that are interconnected through a network. The resources in the in-house data centers are managed by network administrators. Because a data center may comprise hundreds or thousands of servers coupled with multiple disk storage arrays, each of which may contain hundreds of disk drives, managing and verifying the cable connections between servers and allocated storage resources within a data center is becoming increasingly complicated.
One such resource that is increasingly used in large enterprise network environments is a storage area network (SAN). A SAN is a dedicated network that couples an enterprise's storage devices with servers and manages them as a single resource rather than a collection of discreet storage devices. Because a SAN typically acts independently from the enterprise local area (LAN) network or wide area network (WAN), network performance is improved.
In the past, a manual process was implemented by a network administrator to reconfigure the network cabling to couple a particular user or group of users to their allotted storage resources in an in-house data center. FIG. 1 shows an exemplary prior art network 100 that utilizes manual configuration of resources. In FIG. 1, a plurality of servers (e.g., servers 101, 102, and 103) are directly coupled with a plurality of disk arrays (e.g., disk arrays 104, 105, and 106) using individual data lines. The servers are also coupled with a network 150 which may be an enterprise backbone or the Internet. It is appreciated that an enterprise network such as network 100 may actually comprise hundreds or thousands of servers that are coupled with hundreds or thousands of drive arrays. Additionally, each drive array may comprise hundreds of individual disk drives.
A map of the network showing the network cabling that communicatively couples the servers with the disk arrays is typically created by hand. The connections between servers and disk arrays must be manually disconnected and reconnected when network resources are re-allocated. For example, if a given project required the allocation of 20 servers and 20 disk arrays, a manual reconfiguration of the network may be necessitated. However, the process of visually inspecting a map of the network to determine what resources are available for reconfiguration is considered tedious by many network administrators and is prone to human error. Additionally, in large enterprise networks, the size of the network itself precludes accurately allocating network resources based upon a visual inspection of a network map. Finally, the network map cannot detect discrepancies between the network configuration described by the map and the actual network configuration. This can result in misallocation of network resources such as making sensitive information available to unauthorized users.
Automated processes have been implemented in the prior art for the retrieval of configuration attributes for computing resources in an in-house data center. This automated process can be used for determining what computing resources are available and their status in each of the IT environments of the in-house data center. Automation of this process is particularly useful for keeping track of computing resources since each of the IT environments within the in-house data center are constantly changing with respect to the physical locations of computing resources and their use.
However, in the prior art, the automation of discovering configuration attributes for computing resources in an in-house data center was limited to discovery only. The network administrator would necessarily manually check to see if the proper computing resources, and their corresponding configuration attributes, were allocated to the correct IT environment. In other words, the network administrator must manually determine, in the prior art, whether the IT environments were configured correctly with the right computing resources to meet the IT environment's objectives and resource requests. This verification of computing resources through their attributes can be a complex and tedious process when manually performed by a network administrator especially with larger numbers of computing resources in each of IT environments in the in-house data center.
FIG. 2 shows an exemplary network 200 that utilizes a SAN 104 to transfer data between servers (e.g., servers 201, 202, and 203) with disk arrays (e.g., disk arrays 208, 209, and 210) using SAN switches (e.g., switches 205, 206, and 207). SAN 204 provides a communications infrastructure and management utilities that organize connections, storage elements, and computer systems so that data transfer is more secure and reliable. The servers are further coupled with a network 250 such as an enterprise backbone or the Internet. Using controller 211 and map 260, a network administrator can send programming logic to the SAN switches to logically allocate resources in the network. For example, server 202 is physically coupled with SAN switch 206 which is physically coupled with disk arrays 208, 209, and 210. However, using controller 211, a network administrator may send programming logic to SAN switch 206 that prevents server 202 from accessing data stored upon disk array 208 and 210. An administrator may also assign a specific group of disk drives on a disk array to a particular server.
In the example, of FIG. 2, a network map is created by a software program that queries SAN switches 208, 209, and 210 to determine what devices they can sense at each of their ports and outputs a map of the network. Each time a change in the physical topography of the network is changed, a new map of the network is created using the software program. For example, as a result of a query SAN switch 207 may return data indicating that server 3 is coupled with one port and disk arrays 208, 209, and 210 are coupled with other respective ports. While this map is typically more accurate than the network map of FIG. 1, reading and interpreting all of the connection attributes of the network is still done by a network administrator and is just as prone to human error.
Additionally, because the map is limited to discovery of current network allocation, it does not address whether the current allocation of resources is in accordance with the network configuration desired by the administrator. While the software program can adequately detect major faults such as missing or broken hardware, more subtle faults, such as cables plugged into the wrong ports, are not as easily detected. For example, a data cable that should be plugged into port 1 of SAN switch 207 may be plugged into port 2 by mistake. While the software may detect that data is being sent successfully, it is not being sent to the correct destinations. Again, this may cause sensitive data to be accessed by unauthorized users.
Thus, in the prior art, determining the configuration of a storage area network is a complex and tedious task, especially in larger enterprise networks. Additionally, the process is prone to human error and does not readily detect subtle errors in the actual network configuration.